﻿using System;
namespace Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg {
    
    
    public class XIsikuroll : global::Xtee.Core.Schema.XsdString {
        
        public const string AJUTINEPANKROTIHALDURLIKVIDEERIJAÜLESANNETES = "AJPH";
        
        public const string AKTSIONÄR = "S";
        
        public const string ASUTAJA = "A";
        
        public const string AUDIITOR = "D";
        
        public const string DOKUMENTIDEHOIDJA = "DOKH";
        
        public const string ERIREIIMIHALDUR = "ERIH";
        
        public const string ESINDAMAVOLITATUDISIK = "ESIS";
        
        public const string ESINDAMAVOLITATUDUSALDUSOSANIK = "EUSOS";
        
        public const string ESINDAMAÕIGUSTATUDISIKUD = "ESOI";
        
        public const string ETTEVÕTJA = "ETTEV";
        
        public const string FILIAALIJUHATAJA = "VFILJ";
        
        public const string FÜÜSILISESTISIKUSTETTEVÕTJA = "FIE";
        
        public const string JUHATUSEAINULIIGE = "JUHA";
        
        public const string JUHATUSEESIMEES = "JUHE";
        
        public const string JUHATUSELIIGE = "JUHL";
        
        public const string JUHATUSELIIGEJUHATAJA = "JUHJ";
        
        public const string JÄRELEVALVEÕIGUSLIKPANKROTIHALDUR = "JPNKR";
        
        public const string LIKVIDEERIJA = "LIKV";
        
        public const string LISAVASTUTUSEGAÜHISTULIIGE = "YHLLV";
        
        public const string MORATOORIUMIHALDUR = "MORAH";
        
        public const string JUHATUSELIIKMESTLIKVIDEERIJA = "LIKVJ";
        
        public const string NÕUKOGULIIGE = "N";
        
        public const string NÕUKOGUESIMEES = "E";
        
        public const string OSANIK = "O";
        
        public const string PANDIPIDAJA = "PANTP";
        
        public const string PANKROTIHALDUR = "PANKR";
        
        public const string PANKROTITOIMKONNALIIGE = "P";
        
        public const string PROKURIST = "PROK";
        
        public const string REVISJONIKOMISJONILIIGE = "R";
        
        public const string TÄISOSANIK = "TOSAN";
        
        public const string USALDUSOSANIK = "UOSAN";
        
        public const string VÄLISMAAÄRIÜHINGUSEADUSJÄRGNEESINDAJA = "SJESI";
        
        public const string ÜHISTULIIGE = "YHL";
        
        public XIsikuroll(string value) : 
                base(value) {
            this.Validate();
            string annot = null;
            if (Value == "AJPH") {
                annot = "Ajutine pankrotihaldur likvideerija ülesannetes";
            }
            if (Value == "S") {
                annot = "Aktsionär";
            }
            if (Value == "A") {
                annot = "Asutaja";
            }
            if (Value == "D") {
                annot = "Audiitor";
            }
            if (Value == "DOKH") {
                annot = "Dokumentide hoidja";
            }
            if (Value == "ERIH") {
                annot = "Erire?iimihaldur";
            }
            if (Value == "ESIS") {
                annot = "Esindama volitatud isik";
            }
            if (Value == "EUSOS") {
                annot = "Esindama volitatud usaldusosanik";
            }
            if (Value == "ESOI") {
                annot = "Esindama õigustatud isik(ud)";
            }
            if (Value == "ETTEV") {
                annot = "Ettevõtja";
            }
            if (Value == "VFILJ") {
                annot = "Filiaali juhataja";
            }
            if (Value == "FIE") {
                annot = "Füüsilisest isikust ettevõtja";
            }
            if (Value == "JUHA") {
                annot = "Juhatuse ainuliige";
            }
            if (Value == "JUHE") {
                annot = "Juhatuse esimees";
            }
            if (Value == "JUHL") {
                annot = "Juhatuse liige";
            }
            if (Value == "JUHJ") {
                annot = "Juhatuse liige (juhataja)";
            }
            if (Value == "JPNKR") {
                annot = "Järelevalveõiguslik pankrotihaldur";
            }
            if (Value == "LIKV") {
                annot = "Likvideerija";
            }
            if (Value == "YHLLV") {
                annot = "Lisavastutusega ühistu liige";
            }
            if (Value == "MORAH") {
                annot = "Moratooriumihaldur";
            }
            if (Value == "LIKVJ") {
                annot = "Juhatuse liikmest likvideerija";
            }
            if (Value == "N") {
                annot = "Nõukogu liige";
            }
            if (Value == "E") {
                annot = "Nõukogu esimees";
            }
            if (Value == "O") {
                annot = "Osanik";
            }
            if (Value == "PANTP") {
                annot = "Pandipidaja";
            }
            if (Value == "PANKR") {
                annot = "Pankrotihaldur";
            }
            if (Value == "P") {
                annot = "Pankrotitoimkonna liige";
            }
            if (Value == "PROK") {
                annot = "Prokurist";
            }
            if (Value == "R") {
                annot = "Revisjonikomisjoni liige";
            }
            if (Value == "TOSAN") {
                annot = "Täisosanik";
            }
            if (Value == "UOSAN") {
                annot = "Usaldusosanik";
            }
            if (Value == "SJESI") {
                annot = "Välismaa äriühingu seadusjärgne esindaja";
            }
            if (Value == "YHL") {
                annot = "Ühistu liige";
            }
            if (annot!=null) {
                this._annotation = annot;
            }
            else {
                throw new global::Xtee.Core.Types.XteeSimpleTypeValidationException(string.Format("Enumeration on [{0}] does not allow value : [{1}] ", this.GetType().Name,Value.ToString()));;
            }
        }
        
        public XIsikuroll() : 
                base(string.Empty) {
        }
        
        public static bool TryParse(string value, out global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.XIsikuroll result) {
            try {
                result = new global::Producers.Arireg.Xtee.Riik.Ee.Producer.Arireg.XIsikuroll(value);
                return true;
            }
            catch (System.Exception ) {
                result = null;
                return false;
            }
        }
        
        public static implicit operator String (XIsikuroll value) {
            return value.Value;
        }
        
        public static implicit operator XIsikuroll (string value) {
            if (value==null) {
                return null;
            }
            return new XIsikuroll(value);
        }
    }
}
